/*
题目：二叉搜索树的第 K 大节点
给定一棵二叉搜索树，请找出其中第 k 大的节点的值。
https://leetcode.cn/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/
 */
public class Offer54 {
    int res = 0;
    int k = 0;
    public int kthLargest(TreeNode root, int k) {
        //倒着进行中序遍历
        this.k = k;
        dfs(root);
        return res;
    }

    private void dfs(TreeNode root) {
        if (root == null || k <= 0) return ; //设置终止条件
        dfs(root.right);
        if (k-- == 1) { //如果 k = 1, 这个就是目标值
            res = root.val;
            return;
        }
        dfs(root.left);
    }
}
